<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Scripting language</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Scripting_language"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Scripting_language rootpage-Scripting_language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Scripting language</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<p>In computing, a <b>script</b> is a relatively short and simple set of instructions that typically <a href="Automation" title="Automation">automate</a> an otherwise manual process. The act of writing a script is called <b>scripting</b>. A <b>scripting language</b> or <b>script language</b> is a <a href="Programming_language" title="Programming language">programming language</a> that is used for scripting.<sup id="cite_ref-ecma262_1-0" class="reference"><a href="#cite_note-ecma262-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Originally, scripting was limited to automating <a href="Shell_(computing)" title="Shell (computing)">shells</a> in <a href="Operating_system" title="Operating system">operating systems</a>, and languages were relatively simple. Today, scripting is more pervasive and some scripting languages include modern features that allow them to be used to develop <a href="Application_software" title="Application software">application software</a> also.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>A scripting language can be a <a href="General-purpose_programming_language" title="General-purpose programming language">general-purpose programming language</a> or a <a href="Domain-specific_language" title="Domain-specific language">domain-specific language</a> for a given environment. When embedded in an application, it may be called an <i>extension language</i>.
</p><p>A scripting language is sometimes referred to as <a href="Very_high-level_programming_language" title="Very high-level programming language">very high-level programming language</a> if it operates at a high level of abstraction, or as a <i>control language</i>, especially for job control languages on <a href="Mainframe_computer" title="Mainframe computer">mainframe computers</a>.
</p><p>The term <i>scripting language</i> is sometimes used in a wider sense, to refer to <a href="Dynamic_programming_language" title="Dynamic programming language">dynamic</a> <a href="High-level_programming_language" title="High-level programming language">high-level</a> programming languages in general. Some are strictly <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreted languages</a>, while others use a form of compilation.
In this context, the term <i>script</i> refers to a small program in such a language; typically, contained in a single file, and no larger than a few thousand lines of code.
</p><p>The scope of scripting languages ranges from small to large, and from highly <a href="Domain-specific_language" title="Domain-specific language">domain-specific language</a> to <a href="General-purpose_programming_language" title="General-purpose programming language">general-purpose programming languages</a>. A language may start as small and highly domain-specific and later develop into a portable and general-purpose language; conversely, a general-purpose language may later develop special domain-specific <a href="Dialect_(computing)" class="mw-redirect" title="Dialect (computing)">dialects</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notable_languages">Notable languages</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">See also: <a href="List_of_scripting_languages" class="mw-redirect" title="List of scripting languages">List of scripting languages</a></div>
<ul><li><a href="AWK" title="AWK">AWK</a>, for text-processing, generally available in Unix-like operating systems</li>
<li><a href="Bash_(Unix_shell)" title="Bash (Unix shell)">Bash</a>, interpreted language for scripting <a href="Unix" title="Unix">Unix</a> and <a href="Unix-like" title="Unix-like">Unix-like</a> <a href="Operating_system" title="Operating system">operating systems</a></li>
<li><a href="Groovy_(programming_language)" class="mw-redirect" title="Groovy (programming language)">Groovy</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>-like, <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented</a> scripting</li>
<li><a href="JavaScript" title="JavaScript">JavaScript</a> (later: <a href="ECMAScript" title="ECMAScript">ECMAScript</a>), originally limited to running in a web browser to dynamically modify a web page; later enhanced into a widely portable, general-purpose programming language</li>
<li><a href="Linden_Scripting_Language" class="mw-redirect" title="Linden Scripting Language">Linden Scripting Language</a>, custom, extension language for scripting <a href="Second_Life" title="Second Life">Second Life</a> <a href="Virtual_world" title="Virtual world">virtual world</a></li>
<li><a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a>, family of general-purpose and extension languages for applications including <a href="Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a> for <a href="Emacs" title="Emacs">Emacs</a></li>
<li><a href="Lua_(programming_language)" class="mw-redirect" title="Lua (programming language)">Lua</a>, extension language used by many applications</li>
<li><a href="Perl" title="Perl">Perl</a>,<sup id="cite_ref-sheppard00_2-0" class="reference"><a href="#cite_note-sheppard00-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> text-processing language that later developed into a general-purpose language; also used as an extension language for various applications</li>
<li><a href="PowerShell" title="PowerShell">PowerShell</a>, for scripting <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>, <a href="MacOS" title="MacOS">macOS</a> and <a href="Linux" title="Linux">Linux</a></li>
<li><a href="Python_(programming_language)" title="Python (programming language)">Python</a>, general-purpose and extension language</li>
<li><a href="Rexx" title="Rexx">Rexx</a>, general-purpose language that runs on many platforms; also used as extension language</li>
<li><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, multiple-paradigm, general-purpose language</li>
<li><a href="Sed" title="Sed">sed</a>, for text-processing; available in most Unix-like operating systems and ported to other operating systems</li>
<li><a href="Tcl" title="Tcl">Tcl</a>,<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> for Unix-like environments, popular in the 1990s; can be used in conjunction with <a href="Tk_(software)" title="Tk (software)">Tk</a> to develop GUI applications</li>
<li>TrainzScript, custom, extension language for <a href="Trainz" title="Trainz">Trainz</a> railroad simulators</li>
<li><a href="VBScript" title="VBScript">VBScript</a>, for scripting <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a></li>
<li><a href="Visual_Basic_for_Applications" title="Visual Basic for Applications">Visual Basic for Applications</a> (VBA), an extension language available in <a href="Microsoft_Office" title="Microsoft Office">Microsoft Office</a> applications</li>
<li><a href="Batch_file" title="Batch file">Batchscript</a> (BAT), for scripting <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Characteristics">Characteristics</h2></div>
<p>Script is a subjective characterization that generally includes the following attributes.
</p>
<div class="mw-heading mw-heading3"><h3 id="Interpreted">Interpreted</h3></div>
<p>A script is usually not <a href="Compiler" title="Compiler">compiled</a>, at least not its usual meaning. Generally, they are <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> directly from <a href="Source_code" title="Source code">source code</a>, or from <a href="Bytecode" title="Bytecode">bytecode</a>, or run as native after <a href="Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilation</a>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Short_&_simple">Short & simple</h3></div>
<p>A script is generally relatively short and simple. As there is no limit on size or complexity, script is subjective. A few lines of code without branching is probably considered a script. A <a href="Codebase" title="Codebase">codebase</a> of multiple files, that performs sophisticated <a href="User_interface" title="User interface">user</a> or <a href="Hardware_interface" class="mw-redirect" title="Hardware interface">hardware</a> interface or complicated <a href="Algorithm" title="Algorithm">algorithms</a> or <a href="Multiprogramming" class="mw-redirect" title="Multiprogramming">multiprogramming</a> is probably not considered a script.
</p>
<div class="mw-heading mw-heading3"><h3 id="Automates">Automates</h3></div>
<p>A script usually automates a task that would otherwise be performed by a person in a more manual way.
</p>
<div class="mw-heading mw-heading3"><h3 id="Limited_language">Limited language</h3></div>
<p>A language that is primarily intended for scripting generally has limited capabilities compared to a general-purpose language. A scripting language may lack the functionality to write complex applications.
</p>
<div class="mw-heading mw-heading3"><h3 id="Starts_at_the_top">Starts at the top</h3></div>
<p>Typically, a script starts executing at the first line of code whereas an application typically starts at a special point in the code called the <a href="Entry_point" title="Entry point">entry point</a>.
</p><p>For example, <a href="Java_(programming_language)" title="Java (programming language)">Java</a> is not script-like since an application starts at the function named <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">main</code> which need not be at the top of the code. The following code starts at <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">main</code>, then calls <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">printHelloWorld</code> which prints "Hello World".
</p>
<div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">HelloWorld</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">printHelloWorld</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">printHelloWorld</span><span class="p">();</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>In contrast, the following <a href="Python_(computer_language)" class="mw-redirect" title="Python (computer language)">Python</a> code prints "Hello World" without the <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">main</code> function or other syntax such as a class definition required by Java.
</p>
<div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span class="nb">print</span><span class="p">(</span><span class="s2">"Hello World"</span><span class="p">)</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Single_user">Single user</h3></div>
<p>Scripts are often created or modified by the person executing them,<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> but they are also often distributed, such as when large portions of games are written in a scripting language, notably the <a href="Google_Chrome" title="Google Chrome">Google Chrome</a> T-rex game.
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>Early <a href="Mainframe_computer" title="Mainframe computer">mainframe computers</a> (in the 1950s) were non-interactive, instead using <a href="Batch_processing" title="Batch processing">batch processing</a>. IBM's <a href="Job_Control_Language" title="Job Control Language">Job Control Language</a> (JCL) is the archetype of languages used to control batch processing.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>The first interactive <a href="Shell_(computing)" title="Shell (computing)">shells</a> were developed in the 1960s to enable remote operation of the first <a href="Time-sharing" title="Time-sharing">time-sharing</a> systems, and these used <a href="Shell_script" title="Shell script">shell scripts</a>, which controlled running computer programs within a computer program, the shell. <a href="Calvin_Mooers" title="Calvin Mooers">Calvin Mooers</a> in his <a href="TRAC_(programming_language)" title="TRAC (programming language)">TRAC</a> language is generally credited with inventing <i>command substitution</i>, the ability to embed commands in scripts that, when interpreted, insert a character string into the script.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> <a href="Multics" title="Multics">Multics</a> calls these <i>active functions</i>.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
<a href="Louis_Pouzin" title="Louis Pouzin">Louis Pouzin</a> wrote an early processor for command scripts called RUNCOM for <a href="Compatible_Time-Sharing_System" title="Compatible Time-Sharing System">CTSS</a> around 1964. <a href="Stuart_Madnick" title="Stuart Madnick">Stuart Madnick</a> at MIT wrote a scripting language for IBM's <a href="CP/CMS" title="CP/CMS">CP/CMS</a> in 1966. He originally called this processor COMMAND, later named <a href="CMS_EXEC" title="CMS EXEC">EXEC</a>.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Multics included an offshoot of CTSS RUNCOM, also called RUNCOM.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> <a href="CMS_EXEC" title="CMS EXEC">EXEC</a> was eventually replaced by <a href="EXEC_2" title="EXEC 2">EXEC 2</a> and <a href="Rexx" title="Rexx">Rexx</a>.
</p><p>Languages such as <a href="Tcl" title="Tcl">Tcl</a> and <a href="Lua_(programming_language)" class="mw-redirect" title="Lua (programming language)">Lua</a> were specifically designed as general-purpose scripting languages that could be embedded in any application. Other languages such as <a href="Visual_Basic_for_Applications" title="Visual Basic for Applications">Visual Basic for Applications</a> (VBA) provided strong integration with the automation facilities of an underlying system. Embedding of such general-purpose scripting languages instead of developing a new language for each application also had obvious benefits, relieving the application developer of the need to code a language translator from scratch and allowing the user to apply skills learned elsewhere.
</p><p>Some software incorporates several different scripting languages. Modern <a href="Web_browser" title="Web browser">web browsers</a> typically provide a language for writing extensions to the browser itself, and several standard embedded languages for controlling the browser, including <a href="JavaScript" title="JavaScript">JavaScript</a> (a dialect of <a href="ECMAScript" title="ECMAScript">ECMAScript</a>) or <a href="XUL" title="XUL">XUL</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Types">Types</h2></div>
<p>Scripting languages can be categorized into several different types, with a considerable degree of overlap among the types.
</p>
<div class="mw-heading mw-heading3"><h3 id="Glue_languages">Glue languages</h3></div>
<p>Scripting is often contrasted with <a href="System_programming" class="mw-redirect" title="System programming">system programming</a>, as in <a href="Ousterhout's_dichotomy" title="Ousterhout's dichotomy">Ousterhout's dichotomy</a> or "<a href="Programming_in_the_large_and_programming_in_the_small" title="Programming in the large and programming in the small">programming in the large and programming in the small</a>". In this view, scripting is <a href="Glue_code" title="Glue code">glue code</a>, connecting <a href="Software_component" title="Software component">software components</a>, and a language specialized for this purpose is a <i>glue language</i>. Pipelines and shell scripting are archetypal examples of glue languages, and <a href="Perl" title="Perl">Perl</a> was initially developed to fill this same role. <a href="Web_development" title="Web development">Web development</a> can be considered a use of glue languages, interfacing between a <a href="Database" title="Database">database</a> and <a href="Web_server" title="Web server">web server</a>. But if a substantial amount of logic is written in script, it is better characterized as simply another software component, not "glue".
</p><p>Glue languages are especially useful for writing and maintaining:
</p>
<ul><li>custom commands for a command shell;<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></li>
<li>smaller programs than those that are better implemented in a compiled language;<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li>
<li>"wrapper" programs for executables, like a batch file that moves or manipulates files and does other things with the operating system before or after running an application like a word processor, spreadsheet, data base, assembler, compiler, etc.;<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup></li>
<li>scripts that may change;<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Rapid_application_development" title="Rapid application development">Rapid application development</a> of a solution eventually implemented in another, usually compiled, language.</li></ul>
<p>Glue language examples:
</p>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */
.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}
/* end https://en.wikipedia.org/ */
</style><div class="div-col" style="column-width: 18em;">
<ul><li><a href="AppleScript" title="AppleScript">AppleScript</a></li>
<li><a href="CoffeeScript" title="CoffeeScript">CoffeeScript</a></li>
<li><a href="ColdFusion" class="mw-redirect" title="ColdFusion">ColdFusion</a></li>
<li><a href="DIGITAL_Command_Language" title="DIGITAL Command Language">DCL</a></li>
<li><a href="ECL_programming_language" title="ECL programming language">ECL</a></li>
<li><a href="Embeddable_Common_Lisp" title="Embeddable Common Lisp">Embeddable Common Lisp</a></li>
<li><a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a></li>
<li><a href="CMS_EXEC" title="CMS EXEC">EXEC</a>, <a href="EXEC2" class="mw-redirect" title="EXEC2">EXEC2</a></li>
<li><a href="JavaScript" title="JavaScript">JavaScript</a>, <a href="JScript" title="JScript">JScript</a></li>
<li><a href="Job_Control_Language" title="Job Control Language">Job Control Language</a> (JCL)</li>
<li><a href="Julia_(programming_language)" title="Julia (programming language)">Julia</a></li>
<li><a href="Lua_(programming_language)" class="mw-redirect" title="Lua (programming language)">Lua</a></li>
<li><a href="M4_(computer_language)" title="M4 (computer language)">m4</a></li>
<li><a href="Perl" title="Perl">Perl</a> (5 and <a href="Raku_(programming_language)" title="Raku (programming language)">Raku</a>)</li>
<li><a href="PHP" title="PHP">PHP</a></li>
<li><a href="Windows_PowerShell" class="mw-redirect" title="Windows PowerShell">PowerShell</a></li>
<li><a href="Pure_(programming_language)" title="Pure (programming language)">Pure</a></li>
<li><a href="Python_(programming_language)" title="Python (programming language)">Python</a></li>
<li><a href="Rebol" title="Rebol">Rebol</a></li>
<li><a href="Red_(programming_language)" title="Red (programming language)">Red</a></li>
<li><a href="Rexx" title="Rexx">Rexx</a></li>
<li><a href="NetRexx" title="NetRexx">NetRexx</a></li>
<li><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li>
<li><a href="Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a></li>
<li><a href="Tcl" title="Tcl">Tcl</a></li>
<li><a href="Unix" title="Unix">Unix</a> <a href="Shell_script" title="Shell script">shell scripts</a> (<a href="KornShell" title="KornShell">ksh</a>, <a href="C_shell" title="C shell">csh</a>, <a href="Bash_(Unix_shell)" title="Bash (Unix shell)">bash</a>, <a href="Bourne_shell" title="Bourne shell">sh</a> and others)</li>
<li><a href="VBScript" title="VBScript">VBScript</a></li>
<li><a href="Work_Flow_Language" title="Work Flow Language">Work Flow Language</a></li>
<li><a href="XSLT" title="XSLT">XSLT</a></li></ul>
</div>
<p><a href="Macro_(computer_science)" title="Macro (computer science)">Macro</a> languages exposed to operating system or application components can serve as glue languages. These include <a href="Visual_Basic_for_Applications" title="Visual Basic for Applications">Visual Basic for Applications</a>, <a href="WordBasic" class="mw-redirect" title="WordBasic">WordBasic</a>, <a href="LotusScript" title="LotusScript">LotusScript</a>, <a rel="nofollow" class="external text" href="https://www.oberonplace.com/tutor/page1.htm">CorelScript</a>, Hummingbird Basic, QuickScript, Rexx, <a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/ms994312.aspx">SaxBasic</a>, and WinWrap Basic. Other tools like <a href="AWK" title="AWK">AWK</a> can also be considered glue languages, as can any language implemented by a <a href="Windows_Script_Host" title="Windows Script Host">Windows Script Host</a> engine (VBScript, JScript and VBA by default in Windows and third-party engines including implementations of Rexx, Perl, Tcl, Python, XSLT, Ruby, Modern Pascal, <a href="Delphi_(software)" title="Delphi (software)">Delphi</a>, and C). A majority of applications can access and use operating system components via the <a href="Object_model" title="Object model">object models</a> or its own functions.
</p><p>Other devices like programmable calculators may also have glue languages; the operating systems of PDAs such as Windows CE may have available native or third-party macro tools that glue applications together, in addition to implementations of common glue languages—including <a href="Windows_NT" title="Windows NT">Windows NT</a>, <a href="DOS" title="DOS">DOS</a>, and some <a href="Unix_shell" title="Unix shell">Unix shells</a>, Rexx, Modern Pascal, PHP, and Perl. Depending upon the OS version, WSH and the default script engines (VBScript and JScript) are available.
</p><p>Programmable calculators can be programmed in glue languages in three ways. For example, the <a href="Texas_Instruments" title="Texas Instruments">Texas Instruments</a> <a href="TI-92" class="mw-redirect" title="TI-92">TI-92</a>, by factory default can be programmed with a command script language. Inclusion of the scripting and glue language <a href="Lua_(programming_language)" class="mw-redirect" title="Lua (programming language)">Lua</a> in the TI-NSpire series of calculators could be seen as a successor to this. The primary on-board high-level programming languages of most graphing calculators (most often Basic variants, sometimes Lisp derivatives, and more uncommonly, C derivatives) in many cases can glue together calculator functions—such as graphs, lists, matrices, etc. Third-party implementations of more comprehensive Basic version that may be closer to variants listed as glue languages in this article are available—and attempts to implement Perl, Rexx, or various operating system shells on the TI and HP graphing calculators are also mentioned. PC-based C <a href="Cross-compilers" class="mw-redirect" title="Cross-compilers">cross-compilers</a> for some of the TI and HP machines used with tools that convert between C and Perl, Rexx, AWK, and shell scripts to Perl, Modern Pascal, VBScript to and from Perl make it possible to write a program in a glue language for eventual implementation (as a compiled program) on the calculator.
</p>
<div class="mw-heading mw-heading3"><h3 id="Editor_languages">Editor languages</h3></div>
<p>A number of text editors support macros written either using a macro language built into the editor, e.g., <a href="The_SemWare_Editor" title="The SemWare Editor">The SemWare Editor</a> (TSE), <a href="Vim_(text_editor)" title="Vim (text editor)">vi improved</a> (VIM), or using an external implementation, e.g., <a href="XEDIT" title="XEDIT">XEDIT</a>, or both, e.g., <a href="KEDIT" class="mw-redirect" title="KEDIT">KEDIT</a>. Sometimes text editors and edit macros are used under the covers to provide other applications, e.g., FILELIST and RDRLIST in <a href="Conversational_Monitor_System" title="Conversational Monitor System">CMS</a> .
</p>
<div class="mw-heading mw-heading3"><h3 id="Job_control_languages_and_shells">Job control languages and shells</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Shell_script" title="Shell script">Shell script</a></div>
<p>A major class of scripting languages has grown out of the automation of <a href="Job_control_(computing)" title="Job control (computing)">job control</a>, which relates to starting and controlling the behavior of system programs<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> (in this sense, one might think of shells as being descendants of IBM's JCL, or <a href="Job_Control_Language" title="Job Control Language">Job Control Language</a>, which was used for exactly this purpose). Many of these languages' interpreters double as <a href="Command-line_interpreter" class="mw-redirect" title="Command-line interpreter">command-line interpreters</a> such as the <a href="Unix_shell" title="Unix shell">Unix shell</a> or the MS-DOS <code><a href="COMMAND.COM" title="COMMAND.COM">COMMAND.COM</a></code>. Others, such as <a href="AppleScript" title="AppleScript">AppleScript</a> offer the use of English-like commands to build scripts.
</p>
<div class="mw-heading mw-heading3"><h3 id="GUI_scripting">GUI scripting</h3></div>
<p>With the advent of <a href="Graphical_user_interface" title="Graphical user interface">graphical user interfaces</a>, a specialized kind of scripting language emerged for controlling a computer. These languages interact with the same graphic windows, menus, buttons, and so on, that a human user would. They do this by simulating the actions of a user. These languages are typically used to automate user actions. Such languages are also called <i><a href="Macro_(computer_science)#Keyboard_and_mouse_macros" title="Macro (computer science)">macros</a></i> when control is through simulated key presses or mouse clicks, and tapping or pressing on a touch-activated screen.
</p><p>These languages could in principle be used to control any GUI application; but, in practice their use is limited because their use needs support from the application and from the <a href="Operating_system" title="Operating system">operating system</a>. There are a few exceptions to this limit. Some GUI scripting languages are based on recognizing graphical objects from their display screen <a href="Pixel" title="Pixel">pixels</a>. These GUI scripting languages do not depend on support from the operating system or application.
</p><p>When the GUI provides the appropriate interfaces, as in the IBM <a href="Workplace_Shell" title="Workplace Shell">Workplace Shell</a>, a generic scripting language, e.g., <a href="Object_REXX" title="Object REXX">Object REXX</a>, can be used to write GUI scripts.
</p>
<div class="mw-heading mw-heading3"><h3 id="Application-specific_languages">Application-specific languages</h3></div>
<p>Application specific languages can be split in many different categories, i.e., standalone based app languages (executable) or internal application specific languages (<a href="Postscript" title="Postscript">Postscript</a>, <a href="XML" title="XML">XML</a>, gscript as some of the widely distributed scripts, respectively implemented by <a href="Adobe_Inc." title="Adobe Inc.">Adobe</a>, <a href="Microsoft" title="Microsoft">Microsoft</a> and <a href="Google" title="Google">Google</a>) among others include an idiomatic scripting language tailored to the needs of the application user. Likewise, many <a href="Computer_game" class="mw-redirect" title="Computer game">computer game</a> systems use a custom scripting language to express the programmed actions of <a href="Non-player_character" title="Non-player character">non-player characters</a> and the game environment. Languages of this sort are designed for a single application; and, while they may superficially resemble a specific general-purpose language (e.g., <a href="QuakeC" title="QuakeC">QuakeC</a>, modeled after C), they have custom features that distinguish them. <a href="Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a>, while a fully formed and capable dialect of <a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a>, contains many special features that make it most useful for extending the editing functions of Emacs. An application-specific scripting language can be viewed as a domain-specific programming language specialized to one application.
</p>
<div class="mw-heading mw-heading3"><h3 id="Extension/embeddable_languages">Extension/embeddable languages</h3></div>
<p>A number of languages have been designed for the purpose of replacing application-specific scripting languages by being embeddable in application programs. The application programmer (working in C or another systems language) includes "hooks" where the scripting language can control the application. These languages may be technically equivalent to an application-specific extension language but when an application embeds a "common" language, the user gets the advantage of being able to transfer skills from application to application. A more generic alternative is simply to provide a library (often a C library) that a general-purpose language can use to control the application, without modifying the language for the specific domain.
</p><p>JavaScript began as, and still is mostly, a language for scripting inside <a href="Web_browser" title="Web browser">web browsers</a>. However, the <a href="Technical_standard" title="Technical standard">standardizing</a> of the language as <a href="ECMAScript" title="ECMAScript">ECMAScript</a> has made it popular as a general-purpose embeddable language. The <a href="Mozilla" title="Mozilla">Mozilla</a> implementation <a href="SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a> is embedded in several environments such as the <a href="Yahoo_Widgets" title="Yahoo Widgets">Yahoo Widgets</a> Engine,and applications such as the <a href="Adobe_Inc." title="Adobe Inc.">Adobe</a> products <a href="Adobe_Flash" title="Adobe Flash">Flash</a> (<a href="ActionScript" title="ActionScript">ActionScript</a>) and <a href="Adobe_Acrobat" title="Adobe Acrobat">Acrobat</a> (for scripting <a href="PDF" title="PDF">PDF</a> files).
</p><p><a href="Tcl" title="Tcl">Tcl</a> was created as an extension language but has come to be used more often as a general-purpose language in roles similar to <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="Perl" title="Perl">Perl</a>, and <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>. In contrast, <a href="Rexx" title="Rexx">Rexx</a> was created as a job control language, but is widely used as an extension language and a general-purpose language. Perl is a general-purpose language, but had the Oraperl (1990) dialect, consisting of a <a href="Perl" title="Perl">Perl</a> 4 binary with <a href="Oracle_Call_Interface" title="Oracle Call Interface">Oracle Call Interface</a> compiled in. This has however since been replaced by a library (Perl Module), <a rel="nofollow" class="external text" href="https://metacpan.org/module/DBD::Oracle">DBD::Oracle</a>.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>Other complex and task-oriented applications may incorporate and expose an embedded programming language to allow their users more control and give them more functionality than can be available through a user interface, no matter how sophisticated. For example, <a href="Autodesk_Maya" title="Autodesk Maya">Autodesk Maya</a> 3D authoring tools embed the <a href="Maya_Embedded_Language" title="Maya Embedded Language">Maya Embedded Language</a>, or <a href="Blender_(software)" title="Blender (software)">Blender</a> which uses <a href="Python_(programming_language)" title="Python (programming language)">Python</a> to fill this role.
</p><p>Some other types of applications that need faster feature addition or tweak-and-run cycles (e.g. <a href="Game_engine" title="Game engine">game engines</a>) also use an embedded language. During the development, this allows them to prototype features faster and tweak more freely, without the need for the user to have intimate knowledge of the inner workings of the application or to rebuild it after each tweak (which can take a significant amount of time). The scripting languages used for this purpose range from the more common and more famous <a href="Lua_(programming_language)" class="mw-redirect" title="Lua (programming language)">Lua</a> and <a href="Python_(programming_language)" title="Python (programming language)">Python</a> to lesser-known ones such as <a href="AngelScript" title="AngelScript">AngelScript</a> and <a href="Squirrel_(programming_language)" title="Squirrel (programming language)">Squirrel</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Architecture_description_language" title="Architecture description language">Architecture description language</a></li>
<li><a href="Authoring_language" class="mw-redirect" title="Authoring language">Authoring language</a></li>
<li><a href="Build_automation" title="Build automation">Build automation</a><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Configuration_file" title="Configuration file">Configuration file</a></li>
<li><a href="Interpreter_directive" class="mw-redirect" title="Interpreter directive">Interpreter directive</a>, <a href="Shebang_(Unix)" title="Shebang (Unix)">Shebang (Unix)</a></li>
<li><a href="Templating_language" class="mw-redirect" title="Templating language">Templating language</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-ecma262-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-ecma262_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://tc39.github.io/ecma262/#sec-overview">"ECMAScript 2019 Language Specification"</a>. Ecma International<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-04-02</span></span>.</cite></span>
</li>
<li id="cite_note-sheppard00-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-sheppard00_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSheppard2000" class="citation web cs1">Sheppard, Doug (2000-10-16). <a rel="nofollow" class="external text" href="http://www.perl.com/pub/2000/10/begperl1.html">"Beginner's Introduction to Perl"</a>. Perl.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-01-08</span></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFWall2007" class="citation web cs1"><a href="Larry_Wall" title="Larry Wall">Wall, Larry</a> (2007-12-12). <a rel="nofollow" class="external text" href="http://www.perl.com/pub/2007/12/06/soto-11.html">"Programming is Hard, Let's Go Scripting"</a>. <i>Perl.com</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20231208163227/https://www.perl.com/pub/2007/12/06/soto-11.html/">Archived</a> from the original on December 8, 2023.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFBrownMorin1999" class="citation web cs1">Brown, Vicki; Morin, Rich (1999). <a rel="nofollow" class="external text" href="http://www.mactech.com/articles/mactech/Vol.15/15.09/ScriptingLanguages/">"Scripting Languages"</a>. <i>MacTech</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2009-07-22</span></span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFLoui" class="citation web cs1">Loui, Ronald. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150923211452/http://www.cse.wustl.edu/~loui/praiseieee.html">"In Praise of Scripting: Real Programming Pragmatism"</a>. IEEE Computer. Archived from <a rel="nofollow" class="external text" href="http://www.cse.wustl.edu/~loui/praiseieee.html">the original</a> on 2015-09-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-27</span></span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFIBM_Corporation1967" class="citation book cs1">IBM Corporation (March 1967). <a rel="nofollow" class="external text" href="http://www.bitsavers.org/pdf/ibm/360/os/R01-08/C28-6539-4_OS_JCL_Mar67.pdf"><i>IBM System/360 Operating System Job Control Language (C28-6529-4)</i></a> <span class="cs1-format">(PDF)</span>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230525192103/http://www.bitsavers.org/pdf/ibm/360/os/R01-08/C28-6539-4_OS_JCL_Mar67.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on May 25, 2023 – via bitsavers.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFMooers1965" class="citation web cs1">Mooers, Calvin (1965). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20010425014914/http://tracfoundation.org/trac64/procedure.htm">"TRAC, A Procedure-Describing Language for the Reactive Typewriter"</a>. <i>TRAC Foundation</i>. Archived from <a rel="nofollow" class="external text" href="http://tracfoundation.org/trac64/procedure.htm">the original</a> on 2001-04-25<span class="reference-accessdate">. Retrieved <span class="nowrap">March 9,</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFVan_Vleck" class="citation web cs1">Van Vleck, Thomas (ed.). <a rel="nofollow" class="external text" href="http://www.multicians.org/mga.html">"Multics Glossary – A — (active function)"</a>. <i>Multics</i><span class="reference-accessdate">. Retrieved <span class="nowrap">March 9,</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFVarian1991" class="citation web cs1">Varian, Melinda (April 1991). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111006064701/http://web.me.com/melinda.varian/Site/Melinda_Varians_Home_Page_files/neuvm.pdf">"VM and the VM Community: Past, Present, and Future"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://web.me.com/melinda.varian/Site/Melinda_Varians_Home_Page_files/neuvm.pdf">the original</a> <span class="cs1-format">(PDF)</span> on October 6, 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">March 9,</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFVan_Vleck" class="citation web cs1">Van Vleck, Thomas (ed.). <a rel="nofollow" class="external text" href="http://www.multicians.org/mgr.html#runcom">"Multics Glossary – R — (RUNCOM)"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">March 9,</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://whatis.techtarget.com/definition/glue-code">"What is glue code (glue code language)? - Definition from WhatIs.com"</a>. <i>WhatIs.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-01-31</span></span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFLarson2020" class="citation web cs1">Larson, Quincy (10 January 2020). <a rel="nofollow" class="external text" href="https://www.freecodecamp.org/news/compiled-versus-interpreted-languages/">"Interpreted vs Compiled Programming Languages"</a>. <i>Free Code Camp</i><span class="reference-accessdate">. Retrieved <span class="nowrap">23 February</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFBalkis" class="citation web cs1">Balkis, Anton. <a rel="nofollow" class="external text" href="https://rajatips.com/script/">"Script Adalah"</a>. <i>Raja Tips</i><span class="reference-accessdate">. Retrieved <span class="nowrap">23 February</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite id="CITEREFAxelsson" class="citation web cs1">Axelsson, Mats. <a rel="nofollow" class="external text" href="https://linuxhint.com/customize_shell_scripts/">"Shell scripts - What can you change"</a>. <i>Linux Hint</i><span class="reference-accessdate">. Retrieved <span class="nowrap">23 February</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.gnu.org/software/bash/manual/html_node/Job-Control-Basics.html">"Job Control Basics (Bash Reference Manual)"</a>. <i>GNU</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-05-20</span></span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text">"<a rel="nofollow" class="external text" href="https://metacpan.org/module/Oraperl">Oraperl - [Deprecated</a> Perl access to Oracle databases for old oraperl scripts]", metacpan.</span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text">"<a rel="nofollow" class="external text" href="http://www.orafaq.com/wiki/Perl">Perl</a>", <i>Underground Oracle FAQ</i>.</span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite id="CITEREFvan_Rossum1998" class="citation web cs1"><a href="Guido_van_Rossum" title="Guido van Rossum">van Rossum, Guido</a> (January 6–8, 1998). <a rel="nofollow" class="external text" href="https://www.python.org/doc/essays/omg-darpa-mcc-position/">"Glue It All Together With Python"</a>. Python.org. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240119041124/https://www.python.org/doc/essays/omg-darpa-mcc-position/">Archived</a> from the original on January 19, 2024.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFBarron2001" class="citation book cs1">Barron, David William (2001). <i>The World of Scripting Languages</i>. Wiley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-471-99886-9</bdi>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Scripting_languages" class="extiw external" title="commons:Category:Scripting languages">Scripting languages</a></span>.</div></div>
</div>
<ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20041010125419/http://www.doc.ic.ac.uk/~np2/patterns/scripting/">Patterns for Scripted Applications</a> at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a> (archived October 10, 2004)</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programming_paradigms_(Comparison_by_language)368" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Programming_paradigms_(Comparison_by_language)368" style="font-size:114%;margin:0 4em"><a href="Programming_paradigm" title="Programming paradigm">Programming paradigms</a> (<a href="Comparison_of_multi-paradigm_programming_languages" title="Comparison of multi-paradigm programming languages">Comparison by language</a>)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Imperative_programming" title="Imperative programming">Imperative</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Structured_programming" title="Structured programming">Structured</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Jackson_structured_programming" title="Jackson structured programming">Jackson structures</a></li>
<li><a href="Block_(programming)" title="Block (programming)">Block-structured</a></li>
<li><a href="Modular_programming" title="Modular programming">Modular</a></li>
<li><a href="Non-structured_programming" title="Non-structured programming">Non-structured</a></li>
<li><a href="Procedural_programming" title="Procedural programming">Procedural</a></li>
<li><a href="Programming_in_the_large_and_programming_in_the_small" title="Programming in the large and programming in the small">Programming in the large and in the small</a></li>
<li><a href="Design_by_contract" title="Design by contract">Design by contract</a></li>
<li><a href="Invariant-based_programming" title="Invariant-based programming">Invariant-based</a></li>
<li><a href="Nested_function" title="Nested function">Nested function</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object-oriented_programming" title="Object-oriented programming">Object-oriented</a><br>(<a href="Comparison_of_programming_languages_(object-oriented_programming)" title="Comparison of programming languages (object-oriented programming)">comparison</a>, <a href="List_of_object-oriented_programming_languages" title="List of object-oriented programming languages">list</a>)</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Class-based_programming" title="Class-based programming">Class-based</a>, <a href="Prototype-based_programming" title="Prototype-based programming">Prototype-based</a>, <a href="Object-based_language" title="Object-based language">Object-based</a></li>
<li><a href="Agent-oriented_programming" title="Agent-oriented programming">Agent</a></li>
<li><a href="Immutable_object" title="Immutable object">Immutable object</a></li>
<li><a href="Persistent_programming_language" title="Persistent programming language">Persistent</a></li>
<li><a href="Uniform_function_call_syntax" title="Uniform function call syntax">Uniform function call syntax</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Declarative_programming" title="Declarative programming">Declarative</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Functional_programming" title="Functional programming">Functional</a><br>(<a href="Comparison_of_functional_programming_languages" title="Comparison of functional programming languages">comparison</a>)</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Recursion_(computer_science)" title="Recursion (computer science)">Recursive</a></li>
<li><a href="Anonymous_function" title="Anonymous function">Anonymous function</a> (<a href="Partial_application" title="Partial application">Partial application</a>)</li>
<li><a href="Higher-order_programming" title="Higher-order programming">Higher-order</a></li>
<li><a href="Purely_functional_programming" title="Purely functional programming">Purely functional</a></li>
<li><a href="Total_functional_programming" title="Total functional programming">Total</a></li>
<li><a href="Strict_programming_language" title="Strict programming language">Strict</a></li>
<li><a href="Generalized_algebraic_data_type" title="Generalized algebraic data type">GADTs</a></li>
<li><a href="Dependent_type" title="Dependent type">Dependent types</a></li>
<li><a href="Functional_logic_programming" title="Functional logic programming">Functional logic</a></li>
<li><a href="Tacit_programming" title="Tacit programming">Point-free style</a></li>
<li><a href="Expression-oriented_programming_language" title="Expression-oriented programming language">Expression-oriented</a></li>
<li><a href="Applicative_programming_language" title="Applicative programming language">Applicative</a>, <a href="Concatenative_programming_language" title="Concatenative programming language">Concatenative</a></li>
<li><a href="Function-level_programming" title="Function-level programming">Function-level</a>, <a href="Value-level_programming" title="Value-level programming">Value-level</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Dataflow_programming" title="Dataflow programming">Dataflow</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Flow-based_programming" title="Flow-based programming">Flow-based</a></li>
<li><a href="Reactive_programming" title="Reactive programming">Reactive</a> (<a href="Functional_reactive_programming" title="Functional reactive programming">Functional reactive</a>)</li>
<li><a href="Signal_programming" class="mw-redirect" title="Signal programming">Signals</a></li>
<li><a href="Stream_processing" title="Stream processing">Streams</a></li>
<li><a href="Synchronous_programming_language" title="Synchronous programming language">Synchronous</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Logic_programming" title="Logic programming">Logic</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Abductive_logic_programming" title="Abductive logic programming">Abductive logic</a></li>
<li><a href="Answer_set_programming" title="Answer set programming">Answer set</a></li>
<li><a href="Constraint_programming" title="Constraint programming">Constraint</a> (<a href="Constraint_logic_programming" title="Constraint logic programming">Constraint logic</a>)</li>
<li><a href="Inductive_logic_programming" title="Inductive logic programming">Inductive logic</a></li>
<li><a href="Nondeterministic_programming" title="Nondeterministic programming">Nondeterministic</a></li>
<li><a href="Ontology_language" title="Ontology language">Ontology</a></li>
<li><a href="Probabilistic_logic_programming" title="Probabilistic logic programming">Probabilistic logic</a></li>
<li><a href="Query_language" title="Query language">Query</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Domain-specific_language" title="Domain-specific language">DSL</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Algebraic_modeling_language" title="Algebraic modeling language">Algebraic modeling</a></li>
<li><a href="Array_programming" title="Array programming">Array</a></li>
<li><a href="Automata-based_programming" title="Automata-based programming">Automata-based</a> (<a href="Action_language" title="Action language">Action</a>)</li>
<li><a href="Command_language" title="Command language">Command</a> (<a href="Spacecraft_command_language" title="Spacecraft command language">Spacecraft</a>)</li>
<li><a href="Differentiable_programming" title="Differentiable programming">Differentiable</a></li>
<li><a href="End-user_development" title="End-user development">End-user</a></li>
<li><a href="Grammar-oriented_programming" title="Grammar-oriented programming">Grammar-oriented</a></li>
<li><a href="Interface_description_language" title="Interface description language">Interface description</a></li>
<li><a href="Language-oriented_programming" title="Language-oriented programming">Language-oriented</a></li>
<li><a href="List_comprehension" title="List comprehension">List comprehension</a></li>
<li><a href="Low-code_development_platform" title="Low-code development platform">Low-code</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling</a></li>
<li><a href="Natural-language_programming" class="mw-redirect" title="Natural-language programming">Natural language</a></li>
<li><a href="Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li>
<li><a href="Page_description_language" title="Page description language">Page description</a></li>
<li><a href="Pipeline_(software)" title="Pipeline (software)">Pipes</a> and <a href="Filter_(software)" title="Filter (software)">filters</a></li>
<li><a href="Probabilistic_programming" title="Probabilistic programming">Probabilistic</a></li>
<li><a href="Quantum_programming" title="Quantum programming">Quantum</a></li>
<li><a href="Scientific_programming_language" title="Scientific programming language">Scientific</a></li>
<li><a href="Set_theoretic_programming" title="Set theoretic programming">Set-theoretic</a></li>
<li><a href="Simulation_language" title="Simulation language">Simulation</a></li>
<li><a href="Stack-oriented_programming" title="Stack-oriented programming">Stack-based</a></li>
<li><a href="System_programming_language" title="System programming language">System</a></li>
<li><a href="Tactile_programming_language" title="Tactile programming language">Tactile</a></li>
<li><a href="Template_processor" title="Template processor">Templating</a></li>
<li><a href="Transformation_language" title="Transformation language">Transformation</a> (<a href="Graph_rewriting" title="Graph rewriting">Graph rewriting</a>, <a href="Production_system_(computer_science)" title="Production system (computer science)">Production</a>, <a href="Pattern_matching" title="Pattern matching">Pattern</a>)</li>
<li><a href="Visual_programming_language" title="Visual programming language">Visual</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Concurrent_computing" title="Concurrent computing">Concurrent</a>,<br><a href="Distributed_computing" title="Distributed computing">distributed</a>,<br><a href="Parallel_computing" title="Parallel computing">parallel</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Actor_model" title="Actor model">Actor-based</a></li>
<li><a href="Automatic_mutual_exclusion" title="Automatic mutual exclusion">Automatic mutual exclusion</a></li>
<li><a href="Choreographic_programming" title="Choreographic programming">Choreographic programming</a></li>
<li><a href="Concurrent_logic_programming" title="Concurrent logic programming">Concurrent logic</a> (<a href="Concurrent_constraint_logic_programming" title="Concurrent constraint logic programming">Concurrent constraint logic</a>)</li>
<li><a href="Concurrent_object-oriented_programming" title="Concurrent object-oriented programming">Concurrent OO</a></li>
<li><a href="Macroprogramming" title="Macroprogramming">Macroprogramming</a></li>
<li><a href="Multitier_programming" title="Multitier programming">Multitier programming</a></li>
<li><a href="Organic_computing" title="Organic computing">Organic computing</a></li>
<li><a href="Parallel_programming_model" title="Parallel programming model">Parallel programming models</a></li>
<li><a href="Partitioned_global_address_space" title="Partitioned global address space">Partitioned global address space</a></li>
<li><a href="Process-oriented_programming" title="Process-oriented programming">Process-oriented</a></li>
<li><a href="Relativistic_programming" title="Relativistic programming">Relativistic programming</a></li>
<li><a href="Service-oriented_programming" title="Service-oriented programming">Service-oriented</a></li>
<li><a href="Structured_concurrency" title="Structured concurrency">Structured concurrency</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Metaprogramming" title="Metaprogramming">Metaprogramming</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Attribute-oriented_programming" title="Attribute-oriented programming">Attribute-oriented</a></li>
<li><a href="Automatic_programming" title="Automatic programming">Automatic</a> (<a href="Inductive_programming" title="Inductive programming">Inductive</a>)</li>
<li><a href="Dynamic_programming_language" title="Dynamic programming language">Dynamic</a></li>
<li><a href="Extensible_programming" title="Extensible programming">Extensible</a></li>
<li><a href="Generic_programming" title="Generic programming">Generic</a></li>
<li><a href="Homoiconicity" title="Homoiconicity">Homoiconicity</a></li>
<li><a href="Interactive_programming" title="Interactive programming">Interactive</a></li>
<li><a href="Macro_(computer_science)" title="Macro (computer science)">Macro</a> (<a href="Hygienic_macro" title="Hygienic macro">Hygienic</a>)</li>
<li><a href="Metalinguistic_abstraction" title="Metalinguistic abstraction">Metalinguistic abstraction</a></li>
<li><a href="Multi-stage_programming" title="Multi-stage programming">Multi-stage</a></li>
<li><a href="Program_synthesis" title="Program synthesis">Program synthesis</a> (<a href="Bayesian_program_synthesis" title="Bayesian program synthesis">Bayesian</a>, <a href="Inferential_programming" title="Inferential programming">Inferential</a>, <a href="Programming_by_demonstration" title="Programming by demonstration">by demonstration</a>, <a href="Programming_by_example" title="Programming by example">by example</a>)</li>
<li><a href="Reflective_programming" title="Reflective programming">Reflective</a></li>
<li><a href="Self-modifying_code" title="Self-modifying code">Self-modifying code</a></li>
<li><a href="Symbolic_programming" title="Symbolic programming">Symbolic</a></li>
<li><a href="Template_metaprogramming" title="Template metaprogramming">Template</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Separation_of_concerns" title="Separation of concerns">Separation<br>of concerns</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Aspect-oriented_programming" title="Aspect-oriented programming">Aspects</a></li>
<li><a href="Component-based_software_engineering" title="Component-based software engineering">Components</a></li>
<li><a href="Data-driven_programming" title="Data-driven programming">Data-driven</a></li>
<li><a href="Data-oriented_design" title="Data-oriented design">Data-oriented</a></li>
<li><a href="Event-driven_programming" title="Event-driven programming">Event-driven</a></li>
<li><a href="Feature-oriented_programming" title="Feature-oriented programming">Features</a></li>
<li><a href="Literate_programming" title="Literate programming">Literate</a></li>
<li><a href="Role-oriented_programming" title="Role-oriented programming">Roles</a></li>
<li><a href="Subject-oriented_programming" title="Subject-oriented programming">Subjects</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Types_of_programming_languages107" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Types_of_programming_languages107" style="font-size:114%;margin:0 4em"><a href="Programming_paradigm" title="Programming paradigm">Types of programming languages</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Level</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Machine_code" title="Machine code">Machine</a></li>
<li><a href="Assembly_language" title="Assembly language">Assembly</a></li>
<li><a href="Compiled_language" title="Compiled language">Compiled</a></li>
<li><a href="Interpreted_language" class="mw-redirect" title="Interpreted language">Interpreted</a></li></ul>
<ul><li><a href="Low-level_programming_language" title="Low-level programming language">Low-level</a></li>
<li><a href="High-level_programming_language" title="High-level programming language">High-level</a></li>
<li><a href="Very_high-level_programming_language" title="Very high-level programming language">Very high-level</a></li>
<li><a href="Esoteric_programming_language" title="Esoteric programming language">Esoteric</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_generations" title="Programming language generations">Generation</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="First-generation_programming_language" title="First-generation programming language">First</a></li>
<li><a href="Second-generation_programming_language" title="Second-generation programming language">Second</a></li>
<li><a href="Third-generation_programming_language" title="Third-generation programming language">Third</a></li>
<li><a href="Fourth-generation_programming_language" title="Fourth-generation programming language">Fourth</a></li>
<li><a href="Fifth-generation_programming_language" title="Fifth-generation programming language">Fifth</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */
.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q187432#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata1079" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q187432#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata1079" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="Scripting languages (Computer science)"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh2006007256">United States</a></span></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="skriptové jazyky"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph135534&CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007534995705171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/84342062-5e76-412e-8486-5001f5eb2599">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-23" href="https://en.wikipedia.org/wiki/?title=Scripting_language&oldid=1296930960">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>